The present invention relates to processing digital images, and, more particularly, to an apparatus and method of up-sampling frequency rich images without significant loss of image sharpness.
Flat panel displays within computing systems have gained popularity over conventional CRT monitors due to several enhanced features, including cost efficiency, low weight, decreased dimensions, low energy consumption, improved contrast ratios and improved viewing angles, among others. Each pixel of the image displayed on a flat panel display can be controlled independently through row and column drivers, making the flat panel display more akin to a digital circuit. Thus, a digital signal sent by the computing system to the flat panel display does not need to be converted to analog to be displayed on a flat panel display. Elimination of a digital-to-analog converter (DAC) contributes to the efficiency and performance of a flat panel display. Furthermore, flat panel displays include large bandwidth to display images with clarity.
Flat panel displays include various defining characteristics. The first defining characteristic, pixel dimension, is represented in width by height (Xxc3x97Y). Computing systems include graphics controllers which provide image data at all pixel dimensions or image sizes which may include anyone of the following industry standards, including, VGA (640xc3x97480), SVGA (800xc3x97600), XGA (1024xc3x97768), SXGA (1280xc3x97768) and UXGA (1600xc3x971200), where width by height (Xxc3x97Y) represents each pixel dimension. Another defining characteristic is image resolution which refers to the number of pixels displayed per unit length of the image given in pixels per inch (ppi). It determines the area occupied by the images in conjunction with the pixel dimension. When comparing two images having the same pixel dimension, the one with the higher image resolution will occupy a smaller area if printed. Display resolution, a third defining characteristic, on the other hand, is the fixed resolution that the computer monitor can display in dots per inch (dpi). Most CRT monitors have a display resolution of 96 dpi and flat panel displays presently have a display resolution of 110 or 123 dpi. In many graphics programs, image pixels are translated directly into monitor pixels. Flat panel displays have fixed resolution; whereby, when a flat panel display is manufactured, it is designed to display images for one particular resolution. This resolution is known as the native resolution of the flat panel display possibly due to physical pixel size and display size limitation.
In digital image processing, during the acquisition of an image, some graphic controllers use compression or down-sampling to actually delete pixels to make a graphic file format smaller. The image data is later up-sampled by adding pixel information through the use of an interpolation algorithm. Problems arise when, for example, an image having a pixel dimension of 640xc3x97480 is acquired by a flat panel display having a pixel dimension of 800xc3x97600 and a display resolution of 110 dpi. The image that is displayed will only occupy 64% of the flat panel screen. Since it is preferable to view the image on the entire screen, this approach is not desirable. Hence, an image is best displayed if the image sent by the graphic controller matches the pixel dimension and display resolution of the flat panel. For this reason, the image must be up-sampled to enlarge the image such that the image fills the entire display screen.
Changing the pixel dimensions of the image by resampling or up-sampling may occur in either software or hardware. Pixel information is added to an image when it is up-sampled through the use of an interpolation algorithm. Given a constant image resolution, up-sampling will produce a larger image. A software solution may be advantageous due to its ability to enable the computer system to process large amounts of images and, yet, have the flexibility of operating on the entire image line data, which is possible due to the presence of an on-board frame buffer using approximately 6 MB of RAM memory in some systems. The greatest disadvantage, however, is that the software solution does not produce images in real time. Furthermore, the software solution requires excessive amounts of processing power to complete the operation. Hence for applications like motion picture videos, the software solution would require an inordinate amount of processing capability. One exception to this disadvantage is if the software provides pixel or line replication, which requires no processing at all. Pixel replication, however, produces jagged blocks which can be visually seen.
Hardware solutions produce images in real time; however, there is limited processor and memory space available for this type of solution. Hence, the flexibility of processing the entire image is not available. As a result, several lines of the image data must be stored. To eliminate the use of excessive processor and memory space, several forms of interpolation may be implemented in hardware to provide pixel xe2x80x9cpaddingxe2x80x9d to be inserted in the image data.
Nearest neighbor based image interpolation inserts extra pixels that are the same value as the neighboring pixel. In this technique the edges are preserved, thus retaining high frequency content, where high frequency content may include vertical or horizontal closely spaced lines or text. The largest disadvantage of this type of scaling, however, is that it leads a image artifact called xe2x80x9cwaxing and waning,xe2x80x9d where some lines appearing thicker than others.
Bilinear interpolation is a scaling technique in hardware that provides a form of weighted averaging between the nearest two input pixels to provide the value of a padded pixel to be inserted in the image. This weighted averaging is based on the linear distance of the output pixel position from the input pixel position. This type of scaling gives better results than nearest neighbor interpolation. Bilinear interpolation, however, leads to significant loss of the high frequency content in the generated image due to the performance of weighted averaging. Loss of the high frequency content of the generated image leads to blurring of the image.
High resolution cubic convolution and cubic spline interpolation are other forms of resampling techniques that are widely used for digital image processing. These methods, however, generate objectionable image artifacts for images having high frequency content.
Thus, there exists a need for a scaling technique in hardware that will up-sample frequency rich images without significant loss of image sharpness. In addition, there exists a need for a filter having a scaling technique to process images for up-scaling that does not lead to image artifact known as waxing and waning.
To address the above-discussed deficiencies of up-scaling, hardware filtering techniques, the present invention teaches a bi-cosine filter having a scaling technique to process images for up-scaling that does not lead to loss of the high frequency content of the generated image. The two tap bi-cosine filter 100 includes an input node 102 which receives the image data. A first multiplier 104 couples to receive the first coefficient C0 and the image data input. The image data input is feed through a delay element 106. Delay element 106 connects to a second multiplier 108 that couples to receive the second coefficient C1. The output from the first and second multiplier, 104 and 108 couple to a summer 110 to provide a pixel data output at output node 112.
Advantages of this design include a filter having a scaling technique to process images for up-scaling that does not lead to loss of the high frequency content of the generated image but also to a filter having a simple, and cost effective design. The design does not lead to image artifact known as waxing and waning.